package com.ruoyi.finance.szUser.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * 平台用户对象 sz_user
 *
 * @author wangmh
 * @date 2023-10-07
 */
@Data
public class SzUser extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 会员表主键 */
    private Long memberId;

    /** 昵称 */
    @Excel(name = "昵称")
    private String nickname;

    /** 手机号 */
    @Excel(name = "手机号")
    private String phone;

    /** 登录密码 */
    private String password;

    /** 身份证号 */
    @Excel(name = "身份证号", width = 24)
    private String idNumber;

    /** 头像地址 */
    private String avatar;

    /** 账号类型 */
//    @Excel(name = "账号类型")
    private String accountType;

    /** 近登录时间 */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "近登录时间", width = 20, dateFormat = "yyyy-MM-dd")
    private Date lastLoginTime;

    /** 最近登录ip */
    @Excel(name = "最近登录ip")
    private String lastLoginIp;

    /** 最近密码修改时间 */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "最近密码修改时间", width = 20, dateFormat = "yyyy-MM-dd")
    private Date lastUpdatePassword;

    /** 注册时间 */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "注册时间", width = 20, dateFormat = "yyyy-MM-dd")
    private Date registerTime;

    /** 是否参与过充值 */
//    @Excel(name = "是否参与过充值")
    private String recharge;

    /** 每月提现额度(福利板块) */
    private BigDecimal withdrawalLimitMonth;

    /** VIP等级_主键(福利板块) */
    private Long vip;

    /** 基础金币余额 */
    private BigDecimal baseGoldBalance;

    /** 福利金币余额 */
    private BigDecimal welfareGoldBalance;

    /** 福利可提现人民币余额 */
    private BigDecimal welfareWithdrawalBalance;

    /** 用户邀请码 */
    @Excel(name = "用户邀请码")
    private String invitationCode;

    /** 用户上级的邀请码 */
    @Excel(name = "用户上级邀请码")
    private String invitationParent;

    @Excel(name = "用户上级昵称")
    private String parentName;

    @Excel(name = "代理等级")
    private String angencyName;

    /** 是否购买数字直播 */
    private String szEnable;

    @Excel(name = "是否购买数字直播")
    private String szEnableName;

    /** 数字直播-开启时间 */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Excel(name = "开启时间", width = 20, dateFormat = "yyyy-MM-dd")
    private Date szEnableTime;

    /** 数字直播-钱包余额 */
    @Excel(name = "钱包余额")
    private BigDecimal szWalletBalance;

    /** 数字直播-提现钱包余额 */
    @Excel(name = "提现钱包余额")
    private BigDecimal szWithdrawalBalance;


    /** 数字直播-能量值 */
    @Excel(name = "能量值")
    private BigDecimal szEnergy;

    /** 数字直播-钱包细明-团队奖励累计 */
    @Excel(name = "团队奖励累计")
    private BigDecimal szTeamReward;

    /** 数字直播-钱包细明-极差奖励累计 */
    @Excel(name = "极差奖励累计")
    private BigDecimal szRangeReward;

    /** 数字直播-钱包细明-平级累计累计 */
    @Excel(name = "平级累计累计")
    private BigDecimal szLateralReward;

    /** 数字直播-钱包细明-复购奖励累计 */
    @Excel(name = "复购奖励累计")
    private BigDecimal szRepeatbuyReword;

    /** 数字直播-代理等级id */
    private Long szAgency;


    @ApiModelProperty("是否注销")
    private String isSignOut;
    private String signOutName;

    @ApiModelProperty("数字直播是否冻结")
    private String isFrozen;
    private String frozenName;

    @ApiModelProperty("注销时间")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime signOutTime;

    @ApiModelProperty("冻结时间")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private String frozenTime;

    /** 提现钱包提现支付密码 */
    private String paymentPassword;

    /** 代金卷余额 */
    private BigDecimal voucher;

    /**
     * 密码 密文
     */
    private String passwordMiwen;

    /**
     * 支付密码 密文
     */
    private String paymentPasswordMiwen;


    @ApiModelProperty("逻辑删除")
    private String deleteFlag;

    @ApiModelProperty("删除时间")
    private LocalDateTime deleteTime;

    @ApiModelProperty("剩余抵扣金额")
    private BigDecimal deductionAmount;

    @ApiModelProperty("冻结金额")
    private BigDecimal frozenAccount;

    @ApiModelProperty("待激活余额")
    private BigDecimal pendingActivationBalance;


    /**
     * 是否冻结资产
     */
    private String isFrozenAssets;
}
